package torque.generated;

import org.apache.torque.om.Persistent;

/**
 * L'{@link Objetdanstrolldanspartie} est un {@link Objetdanspartie} qui a été ramassé. Dès lors il a un booleen equipe pour savoir si il est équipé, et un {@link Integer} tour correspondant au nombre de tour avant son expiration. Ce nombre ne diminue que si l'objet est équipé.
 * 
 */
public class Objetdanstrolldanspartie extends
		torque.generated.BaseObjetdanstrolldanspartie implements Persistent {
	/** Serial version */
	private static final long serialVersionUID = 1317634214273L;

	/** Lance l'evenement de nouveau tour
	 * Permet de supprimer les objets périmés, d'activer les effets de soins des potions.
	 */
	public void nouveauTour() {
		try {
			int tour = this.getTour();
			if(this.getEquipe() && this.getObjetdanspartie().getObjet().getType()=="Potion"){
			tour--;
			if (tour == 0) {
				System.out.println("["
						+ this.getObjetdanspartie().getNomobjet() + "] de :) "
						+ this.getNomtroll() + " est épuisé !");
				ObjetdanstrolldanspartiePeer.doDelete(this);
			} else {
				int bonusvie = this.getObjetdanspartie().getObjet()
						.getBonusvie();
				if (bonusvie != 0) {
					this.getTrolldanspartie().setPv(
							(int) Math.min(this.getTrolldanspartie().getTroll()
									.getVie(), this.getTrolldanspartie()
									.getPv() + bonusvie));
					this.getTrolldanspartie().save();
				}

				System.out.println("["
						+ this.getObjetdanspartie().getNomobjet() + "] de :) "
						+ this.getNomtroll() + " ne restera actif que " + tour
						+ " tours.");

			}
			this.save();
			}
		} catch (Exception e) {
			System.out
					.println("Erreur au nouveau tour dans Objet dans équipement");
		}
	}
}
